package com.soar.recruitment.common.ui.view.ptr;

import android.content.Context;
import android.view.ViewGroup;

import com.soar.recruitment.R;
import com.soar.recruitment.common.util.DisplayUtil;

import in.srain.cube.views.ptr.PtrFrameLayout;
import in.srain.cube.views.ptr.header.MaterialHeader;

/**
 * Created by mac on 16/3/24.
 * Ptr下拉刷新的初始化配置
 * <p/>
 * 备注：
 * 定制化的属性可以在相关的xml文件中配置
 * <p/>
 * for example：
 * <in.srain.cube.views.ptr.PtrFrameLayout
 * android:id="@+id/store_house_ptr_frame"
 * android:layout_width="match_parent"
 * android:layout_height="match_parent"
 * <p/>
 * xmlns:cube_ptr="http://schemas.android.com/apk/res-auto" 属性声明
 * cube_ptr:ptr_resistance="1.7"                        阻尼系数，默认: 1.7f，越大，感觉下拉时越吃力。
 * cube_ptr:ptr_ratio_of_header_height_to_refresh="1.2" 触发刷新时移动的位置比例，默认，1.2f，移动达到头部高度 1.2 倍时可触发刷新操作。
 * cube_ptr:ptr_duration_to_close="300"                 回弹延时，默认 200ms，回弹到刷新高度所用时间。
 * cube_ptr:ptr_duration_to_close_header="2000"         头部回弹时间，默认 1000ms,也即是每次执行刷新操作后可再次刷新的延迟间隔
 * cube_ptr:ptr_keep_header_when_refresh="true"         刷新是否保持头部，默认值 true。
 * cube_ptr:ptr_pull_to_fresh="false" >                 下拉刷新 / 释放刷新，默认为释放刷新。
 */
public class PtrFrameInit {

    /**
     * 下拉刷新的初始化配置
     *
     * @param mPtrFrameLayout    ptrLayout实例
     * @param context 用于getResource()
     * @param isAutoRefresh 创建页面时是否执行自动刷新
     *                      Caution ! 当页面首次进入请求数据的过程中，展示的进去条是居中的LoadingLayout时，请传 isAutoRefresh = false.
     */
    public static void init(final PtrFrameLayout mPtrFrameLayout, Context context, boolean isAutoRefresh) {
        mPtrFrameLayout.setPinContent(true);

        //配置下拉刷新的头部
        final MaterialHeader header = new MaterialHeader(context);
        int[] colors = context.getResources().getIntArray(R.array.google_colors);
        header.setColorSchemeColors(colors);

        ViewGroup.MarginLayoutParams params = new PtrFrameLayout.LayoutParams(-1, -2);
        params.topMargin = 40;
        header.setLayoutParams(params);
        header.setPadding(0, DisplayUtil.dp2px(context, 15), 0, DisplayUtil.dp2px(context, 10));
        //将刷新头部与PtrFrameLayout绑定
        header.setPtrFrameLayout(mPtrFrameLayout);
        mPtrFrameLayout.setHeaderView(header);
        //配置下拉刷新相关时间阈值
        mPtrFrameLayout.setLoadingMinTime(1000);

        //回弹延时，默认 200ms，回弹到刷新高度所用时间。
//        mPtrFrameLayout.setDurationToClose(300);
        //头部回弹时间，默认 1000ms
//        mPtrFrameLayout.setDurationToCloseHeader(200);
        //默认 false
//        mPtrFrameLayout.setPullToRefresh(false);
        //默认true
//        mPtrFrameLayout.setKeepHeaderWhenRefresh(true);
//        阻尼系数，默认: 1.7f，越大，感觉下拉时越吃力。
//        mPtrFrameLayout.setResistance(1.7f);
//        触发刷新时移动的位置比例，默认，1.2f，移动达到头部高度 1.2 倍时可触发刷新操作。
//        mPtrFrameLayout.setRatioOfHeaderHeightToRefresh(1.2f);

        //将刷新头部的UI内容添加到PtrFrameLayout中，展示出来
        mPtrFrameLayout.addPtrUIHandler(header);

        if (isAutoRefresh) {
            mPtrFrameLayout.autoRefresh();
        }

    }
}
